home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
COMMUNIC
/
H191.ZIP
/
CA29-3.EXE
/
DIALER.CMD
< prev
next >
Wrap
OS/2 REXX Batch file
|
1993-02-26
|
8KB
|
607 lines
CLEA
CURS N8,N9
ON ESCA GOSU Exit
LEGE " Multi-dialer pop-up"
SET TTHR OFF
CLOG "* Dialer multi-dialer invoked"
GOSU Window
GOSU Get_Last
GOSU Parse_Pa
GOSU All_Fiel
LOCA 7,8
Main_Loo:
SET TTHR OFF
KEYG S0
Have_Key:
SWIT S0
CASE "4900"
GOTO PgUp
ENDC
CASE "5100"
GOTO PgDn
ENDC
CASE "4700"
GOTO Home
ENDC
CASE "4F00"
GOTO End
ENDC
CASE "0D"
GOTO Perform
ENDC
CASE "4800"
GOTO UpLine
ENDC
CASE "5000"
GOTO DnLine
ENDC
CASE "4B00"
GOTO Left
ENDC
CASE "4D00"
GOTO Right
ENDC
CASE "09"
GOTO Right
ENDC
CASE "0F00"
GOTO Left
ENDC
ENDS
IF NOT NULL S0(1:3)
SOUN 100,100
GOTO Main_Loo
ENDI
CURS N0,N1
IF GE N1 11
GOSU Enter_DD
GOTO Have_Key
ELSE
GOSU Enter_LD
GOTO Right
ENDI
PgUp:
CURS N1,N2
IF GE N2 11
N0=N10[N1-7]
N3=N0/1000
N0=N0-(N0/1000)*1000
N0=N0-1
IF LT N0 0 N0=100
N0=N0+N3*1000
ELSE
N0=N10[N1-7]
N3=N0-(N0/1000)*1000
N0=N0/1000
N0=N0-1
IF LT N0 0 N0=4
N0=N3+N0*1000
ENDI
N10[N1-7]=N0
GOSU One_Fiel
GOTO Main_Loo
PgDn:
CURS N1,N2
IF GE N2 11
N0=N10[N1-7]
N3=N0/1000
N0=N0-(N0/1000)*1000
N0=N0+1
IF GT N0 100 N0=0
N0=N0+N3*1000
N10[N1-7]=N0
GOSU One_Fiel
ELSE
N0=N10[N1-7]
N3=N0-(N0/1000)*1000
N0=N0/1000
N0=N0+1
IF GT N0 4 N0=0
N0=N3+N0*1000
ENDI
N10[N1-7]=N0
GOSU One_Fiel
GOTO Main_Loo
UpLine:
CURS N0,N1
N0=N0-1
IF LT N0 7 N0=16
N1=8
IF GE N1 11 N1=11
LOCA N0,N1
GOTO Main_Loo
DnLine:
CURS N0,N1
N0=N0+1
IF GT N0 16 N0=7
N1=8
IF GE N1 11 N1=11
LOCA N0,N1
GOTO Main_Loo
Home:
LOCA 7,8
GOTO Main_Loo
End:
LOCA 11,8
GOTO Main_Loo
Left:
CURS N0,N1
IF GE N1 11
N1=8
ELSE
N0=N0-1
N1=11
ENDI
IF LT N0 7 N0=16
LOCA N0,N1
GOTO Main_Loo
Right:
CURS N0,N1
IF GE N1 11
N0=N0+1
N1=8
ELSE
N1=11
ENDI
IF GT N0 16 N0=7
LOCA N0,N1
GOTO Main_Loo
Exit:
REST
LOCA N8,N9
EXIT
Enter_DD:
CURS N1,N2
N0=N10[N1-7]
N0=(N0/1000)*1000
GOSU One_Fiel
N6=0
S9=""
IF STRCMP S0 " "
N10[N1-7]=N0
GOTO DD_Keypr
ENDI
IF STRCMP S0 "08"
N10[N1-7]=N0
GOTO DD_Keypr
ENDI
DD_Test:
IF STRCMP S0 " "
S0="4D00"
GOTO DD_Store
ENDI
IF STRCMP S0 "?"
GOSU Ask_Dial
IF SUCCESS
S9=S2
LENG S9 N6
S0="4D00"
GOTO DD_Store
ENDI
GOTO DD_Keypr
ENDI
SWIT S0
CASE "09"
GOTO DD_Store
ENDC
CASE "0D"
S0="4D00"
GOTO DD_Store
ENDC
CASE "08"
IF GT N6 0
CURS N1,N2
N2=N2-1
LOCA N1,N2
ATSA N1,N2 (default) " "
S1(N6:N6)=" "
N6=N6-1
ENDI
GOTO DD_Keypr
ENDC
ENDS
IF NOT NULL S0(1:3) GOTO DD_Store
CTOI S0 N0
IF LT N0 48 GOTO DD_Invalid
IF GT N0 57 GOTO DD_Invalid
S9(N6:N6)=S0
N6=N6+1
CURS N1,N2
ATSA N1,N2 (default) S0(0:0)
N2=N2+1
LOCA N1,N2
IF GE N6 3
S0="4D00"
GOTO DD_Store
ENDI
GOTO DD_Keypr
DD_Inval:
SOUN 100,100
DD_Keypr:
KEYG S0
GOTO DD_Test
DD_Store:
IF EQ N6 0 GOTO DD_Exit
N3=S9
IF GT N3 100 N3=100
IF LT N3 1 N3=1
N0=N10[N1-7]
N0=N3+(N0/1000)*1000
N10[N1-7]=N0
DD_Exit:
N0=N10[N1-7]
GOSU One_Fiel
RETU
Enter_LD:
SWIT S0
CASE "+"
N0=1
ENDC
CASE "-"
N0=2
ENDC
CASE "#"
N0=3
ENDC
CASE "@"
N0=4
ENDC
CASE "1"
N0=1
ENDC
CASE "2"
N0=2
ENDC
CASE "3"
N0=3
ENDC
CASE "4"
N0=4
ENDC
DEFA
N0=0
S0=" "
ENDC
ENDS
CURS N1,N2
ATSA N1,N2 (Default) S0(0:0)
N3=N0
N0=N10[N1-7]
N0=N0-(N0/1000)*1000
N0=N0+N3*1000
N10[N1-7]=N0
GOSU One_Fiel
RETU
One_Fiel:
S10=" "
ATSA N1,7 (Default) S10(0:67)
IF ZERO N0 RETURN
N2=N0/1000
N3=N0-(N0/1000)*1000
IF NOT ZERO N2
S10(0:2)=" "*N2
LD S11 N2
S10(8:30)=S11
ENDI
IF NOT ZERO N3
S10(4:6)=N3
DNUM S11 N3
S10(32:45)=S11
DIRE S11 N3
S10(47:79)=S11(0:19)
ENDI
PRES S10
ATSA N1,7 (Default) S10
RETU
All_Fiel:
FOR N20=0,9
N0=N10[N20]
N1=N20+7
IF NOT ZERO N0 GOSUB One_Field
ENDF
RETU
Parse_Pa:
FOR N0=0,45,5
N1=N0+3
ATOI S19(N0:N1) N1
IF ERROR N1=0
N10=N11
N11=N12
N12=N13
N13=N14
N14=N15
N15=N16
N16=N17
N17=N18
N18=N19
N19=N1
ENDF
RETU
Get_Last:
S19="DIALER.DAT"
IF ISFILE S19
FOPENI "DIALER.Dat" TEXT
IF FAILURE GOTO No_Get
ELSE
GOTO No_Get
ENDI
READ S19 80 N0
IF EOF GOTO No_Get
FCLOSEI
RETU
No_Get:
S19=" "
RETU
Window:
SAVE 1,5 23 75
BOX 1,5 23 75 (default)
ATSA 1,7 (default) " COM-AND Multi-dialer "
ATSA 2,7 (default) "Select up to 10 dialing directory entries (using or not using a long"
ATSA 3,7 (default) "distance prefix). Sequential redial begins when you hit return."
ATSA 4,5 (default) "├─────────────────────────────────────────────────────────────────────┤"
ATSA 5,7 (default) "LD# DD# (from LD directory) (from dialing directory)"
ATSA 6,7 (default) "--- --- ----------------------- -------------- --------------------"
ATSA 17,5 (default) "├─────────────────────────────────────────────────────────────────────┤"
ATSA 18,7 (default) "Use cursor up/down to select a line in the display. Use cursor left"
ATSA 19,7 (default) "and right to select a field. ?/PgUp/PgDn cycle possible values. LD"
ATSA 20,7 (default) "codes are 0,' ' = none, 1 or +, 2 or -, 3 or #, 4 or @. DD codes"
ATSA 21,7 (default) "are 1-100. Current values are always displayed. Empty entries "
ATSA 22,7 (default) "are ignored. A carriage return begins the dialing sequence."
ATSA 23,30 (default) " Press ESC to exit "
RETU
Exit_Per:
HANG
REST
GOTO Exit
Perform:
N6=0
FOR N1=7,16
N0=N10[N1-7]
N2=N0-N0/1000*1000
IF NOT ZERO N2 GOTO Set_up
ENDF
SOUN 100,100
GOTO Main_Loo
Set_Up:
SET TTHR ON
KFLU
SET RDIS OFF
ON ESCA GOSU Exit_Per
LEGE " Cycling through selected #'s"
GOSU Set_Last
SAVE 17,5 23 75
BOX 17,5 23 75 (default)
ATSA 17,7 (default) " COM-AND Dialing "
ATSA 23,22 (default) " CR to move to next, ESC to terminate "
N6=0
N5=35
Loop:
FOR N1=7,16
N0=N10[N1-7]
N2=N0-N0/1000*1000
N3=N0/1000*1000
IF NOT ZERO N2
RFLU
ATSA 22,7 (default) "Hanging up "
S0="_CLOG"
SET CALL OFF
HANG
SET CALL S0
WAIT "OK" 10
N6=N6+1
ATSA 18,7 (default) "Retry #: "*N6*"; Started: "*"_time"*"; Timeout = "*N5*" seconds"
SCRO 0,19,7 22,36 (defa)
DIRE S1 N2
PRES S1
DNUM S2 N2
LJ S2
IF NOT NULL "_DDAC"
S0="1-"*"_DDAC"
LENG S0 N21
IF STRCMP S0 S2(0:N21-1) S2=S2(N21:79)
IF FIND S2(0:0) "-" S2=S2(1:79)
ENDI
LD S3 N3
ATSA 19,7 (default) S1
ATSA 20,7 (default) S2&S3
GOSU Set_Dial
PAUS 1
S0="_DPRE"&S3&""&S2&""&"_DSUF"&""
TRAN S0
ATSA 22,7 (default) "Dialing "
N0=N5
SET TIME
WHIL GT N0 0
RGET S0 80 N0
IF NOT NULL S0
IF FIND S0 "_MCONNECT"&"" GOTO Got_It
ATSA 22,7 (default) " "
ATSA 22,7 (default) S0
IF NOT FIND S0 S2&"" and NOT FIND S0 "RINGING"
PAUS 5
ATSA 22,7 (default) "Cycling "
N0=-N5
ENDI
ENDI
TSIN N3,N3,N4
IF N0 GT 0 N0=N5-N4
ENDW
ENDI
ENDF
GOTO Loop
Set_Dial:
DPAR S0 N2
S1=S0(5:5)
SWIT S1
CASE "E"
SET PARI EVEN
ENDC
CASE "O"
SET PARI ODD
ENDC
CASE "N"
SET PARI NONE
ENDC
ENDS
S1=S0(7:7)
SET DATA S1
S1=S0(9:9)
SET STOP S1
IF NOT STRCMP "_DDOVER" "ON"
SET BAUD S0(0:3)
ELSE
S0(0:3)="_PARM"(0:3)
ENDI
ATSA 21,7 (default) S0
SET DUPL FULL
IF STRCMP S0(11:11) "Y" SET DUPLEX HALF
RETU
Got_It:
REST
REST
LOCA N8,N9
SET RDIS ON
N0=0
N10[N1-7]=N0
GOSU Set_Last
DIRE S0 N2
SET CLOC NEW
CLOG "CONNECT (dialer.cmd): "*S0
DSCR S0,N2
IF NOT NULL S0
SET LINK ON
EXEC S0
ENDI
ALAR
CONN
Set_Last:
S19="DIALER.DAT"
FOPENO "DIALER.Dat" TEXT
IF FAILURE RETURN
S19(0:4)=N10
S19(5:9)=N11
S19(10:14)=N12
S19(15:19)=N13
S19(20:24)=N14
S19(25:29)=N15
S19(30:34)=N16
S19(35:39)=N17
S19(40:44)=N18
S19(45:49)=N19
WRIT S19 50
FCLOSEO
RETU
Ask_Dial:
N20=0
WOPE 2 20 15 60 (contrast) ASK_ESC
ATSA 2 22 (contrast) " Learn Dial "
ATSA 13 20 (contrast) "├───────────────────────────────────────┤"
ATSA 14 22 (contrast) "Entry# (or m):"
ATSA 15 30 (contrast) " Press ESC to cancel "
CURS N5 N6
SET FLAG(9) OFF
Dial_Loo:
SCRO 0,3,22 12,58 (contrast)
FOR N21=1,10
N24=N20+N21
DIRE S0 N24
ATSA (2+N21) 22 (contrast) N24*")"
ATSA (2+N21) 27 (contrast) S0
ENDF
LOCA 14 37
N22=37
S2=""
Dial_Key:
IF NOT FLAG(9) KEYGET S0
IF FLAG(9)
WCLO
SET SUCC OFF
RETU
ENDI
LENG S0 N21
SWIT N21
CASE 1
IF FIND S0 "m"
S2=S0
SET SUCC ON
GOTO Dial_End
ENDI
IF NOT FIND "+-@#0123456789" S0
SOUN 100,100
GOTO Dial_Key
ENDI
S2=S2*S0
ATSA 14 N22 (contrast) S0
INC N22
LOCA 14 N22
GOTO Dial_Key
ENDC
CASE 2
SWIT S0
CASE "0D"
SET SUCC ON
GOTO DIAL_End
ENDC
CASE "08"
LENG S2 N20
IF GT N20 1
S2=S2(0:N20-2)
DEC N22
LOCA 14 N22
ATSA 14 N22 (contrast) " "
ELSE
S2=""
N22=37
ATSA 14 N22 (contrast) " "
ENDI
GOTO Dial_Key
ENDC
DEFA
SOUN 100,100
GOTO Dial_Key
ENDC
ENDS
ENDC
CASE 4
SWIT S0
CASE "4900"
N20=N20-10
IF LT N20 0
N20=90
ENDI
GOTO Dial_Loo
ENDC
CASE "5100"
N20=N20+10
IF GE N20 100
N20=0
ENDI
GOTO Dial_Loo
ENDC
CASE "4700"
N20=0
GOTO Dial_Loo
ENDC
CASE "4F00"
N20=90
GOTO Dial_Loo
ENDC
DEFA
SOUN 100,100
GOTO Dial_Key
ENDC
ENDS
ENDC
DEFA
SET SUCC OFF
ENDC
ENDS
Dial_End:
SET SUCC ON
LOCA N5 N6
WCLO
RETU
Ask_Esc:
SET FLAG(9) ON
RETU